package com.hequ.merchant.banner.handler;

import android.util.Log;

import com.hequ.merchant.banner.entity.Banner;
import com.hequ.merchant.banner.entity.Module;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by 柯尊诚 on 2015/10/20.
 * kzc
 */
public class BannerJsonResponseHandler extends JsonResponseHandler<Banner> {

    public final static String JSON_KEY_ID = "id";
    public final static String JSON_KEY_NAME = "name";
    public final static String JSON_KEY_IMAGENAME = "imageName";
    public final static String JSON_KEY_BACKGROUND = "background";//可选
    public final static String JSON_KEY_POSITION = "position";//可选
    public final static String JSON_KEY_ACTION = "action";
    public final static String JSON_KEY_URL = "url";//可选
    public final static String JSON_KEY_ENABLED = "enabled";
    public final static String JSON_KEY_CREATETIME = "createTime";
    public final static String JSON_KEY_MEMO = "memo";//可选
    public final static String JSON_KEY_MODULES = "modules";//可选
    public final static String JSON_KEY_UPDATETIME = "updateTime";
    public final static String JSON_KEY_IMAGE = "image";

    @Override
    protected Banner parseItem(JSONObject json) throws JSONException {

        Banner banner = new Banner();

        if (hasKeyValue(json, JSON_KEY_IMAGE)) {
            banner.setImage(json.getString(JSON_KEY_IMAGE));
        }

        if (hasKeyValue(json, JSON_KEY_ID)) {
            banner.setId(json.getString(JSON_KEY_ID));
        }

        if (hasKeyValue(json, JSON_KEY_NAME)) {
            banner.setName(json.getString(JSON_KEY_NAME));
        }

        if (hasKeyValue(json, JSON_KEY_ACTION)) {
            banner.setAction(json.getString(JSON_KEY_ACTION));
        }

        if (hasKeyValue(json, JSON_KEY_BACKGROUND)) {
            banner.setBackGround(json.getString(JSON_KEY_BACKGROUND));
        }

        if (hasKeyValue(json, JSON_KEY_CREATETIME)) {
            banner.setCreateTime(json.getString(JSON_KEY_CREATETIME));
        }

        if (hasKeyValue(json, JSON_KEY_ENABLED)) {
            banner.setEnabled(json.getString(JSON_KEY_ENABLED));
        }

        if (hasKeyValue(json, JSON_KEY_MODULES)) {
            JSONArray jsonModules = json.getJSONArray(JSON_KEY_MODULES);
            List<Module> modules = new ArrayList<>();
            for (int i = 0; i < jsonModules.length(); i++) {
                Module module = new Module();
                module.setId(jsonModules.getJSONObject(i).getString(JSON_KEY_ID));
                module.setName(jsonModules.getJSONObject(i).getString(JSON_KEY_NAME));
                modules.add(module);
            }
            banner.setModules(modules);
        }

        if (hasKeyValue(json, JSON_KEY_IMAGENAME)) {
            banner.setImageName(json.getString(JSON_KEY_IMAGENAME));
        }

        if (hasKeyValue(json, JSON_KEY_MEMO)) {
            banner.setMemo(json.getString(JSON_KEY_MEMO));
        }

        if (hasKeyValue(json, JSON_KEY_POSITION)) {
            banner.setPosition(json.getString(JSON_KEY_POSITION));
        }

        if (hasKeyValue(json, JSON_KEY_UPDATETIME)) {
            banner.setUpdateTime(json.getString(JSON_KEY_UPDATETIME));
        }

        if (hasKeyValue(json, JSON_KEY_URL)) {
            banner.setUrl(json.getString(JSON_KEY_URL));
        }

        return banner;
    }
}
